#include <iostream.h> // Zadanie 6.2
#include <iomanip.h>
#include <conio.h>

class trojmian // definicja klasy trojmnian
{
public:
float a, b, c, delta, x1, x2;
char liczba_pierwiastkow;
czytaj_dane(); // prototyp funkcji czytaj_dane()
przetworz_dane(); // prototyp funkcji przetworz_dane()
wyswietl_wynik(); // prototyp funkcji wyswietl_wynik()
};

trojmian::czytaj_dane()
{
cout << "Program oblicza pierwiastki rownania kwadratowego" << endl;
cout << "dla dowolnych wspolczynnikow a, b, c." << endl;
cout << "Podaj a." << endl;
cin >> a;

if (a == 0)
{
cout << "Niedozwolona wartosc wspolczynnika. Nacisnij dowolny klawisz." << endl;
getch(); // czeka na nacisniecie dowolnego klawisza
exit(1); // wyjscie z programu
}
else
{
cout << "Podaj b." << endl;
cin >> b;
cout << "Podaj c." << endl;
cin >> c;
}
}

trojmian::przetworz_dane()
{
delta = b*b-4*a*c;

if (delta < 0) liczba_pierwiastkow = 0;
if (delta == 0) liczba_pierwiastkow = 1;
if (delta > 0) liczba_pierwiastkow = 2;

switch(liczba_pierwiastkow)
{
case 1 : x1 = -b/(2*a);
break;
case 2 : { x1 = (-b-sqrt(delta))/(2*a);
		   x2 = (-b+sqrt(delta))/(2*a);
		 }
break;
}
}

trojmian::wyswietl_wynik()
{
cout << "Dla wprowadzonych liczb:" << endl;
cout << "a = " << a << "," << endl;
cout << "b = " << b << "," << endl;
cout << "c = " << c << "," << endl;

switch(liczba_pierwiastkow)
{
case 0 : cout << "brak pierwiastkow rzeczywistych." << endl;
break;
case 1 : cout << "trojmian ma jeden pierwiastek podwojny x1 = " << x1 << "." << endl;
break;
case 2 : { cout << "trojmian ma dwa pierwiastki:" << endl;
		   cout << "x1 = " << x1 << "," << endl;
		   cout << "x2 = " << x2 << "." << endl;
		 }
break;
}
}

main()
{

trojmian trojmian1; // utworzenie obiektu trojmian1

cout << fixed << setprecision(2);

trojmian1.czytaj_dane();
trojmian1.przetworz_dane();
trojmian1.wyswietl_wynik();

getch(); // czeka na nacisniecie dowolnego klawisza
}
